﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using Upeu.Facturacion.Api.Models;
using Upeu.Facturacion.Data.Business;
using Upeu.Facturacion.Data.Entities;

namespace Upeu.Facturacion.Api.Controllers
{
    public class ClienteController : ApiController
    {

       
        public IEnumerable<ClienteModel> GetListYuri()
        {
            return ClienteBusiness.GetListByFilter("").Select(
                t => new ClienteModel
                {
                    Id = t.Id,
                    Ruc = t.Ruc,
                    Nombre = t.Nombre,
                    FechaNac = t.FechaNac,
                    Direccion = t.Direccion,
                });
        }
        
       

        public ClienteModel Get(Guid id)
        {
            Cliente t = ClienteBusiness.GetById(id);
            return new ClienteModel
                {
                    Id = t.Id,
                    Ruc = t.Ruc,
                    Nombre = t.Nombre,
                    FechaNac = t.FechaNac,
                    Direccion = t.Direccion,
                };
        }

        // POST api/<controller>
        public ClienteModel Post([FromBody]ClienteModel model)
        {
            Cliente t = ClienteBusiness.Create(new Cliente
            {
                Ruc = model.Ruc,
                Nombre = model.Nombre,
                FechaNac = model.FechaNac,
                Direccion = model.Direccion,
            });
            return new ClienteModel
            {
                Id = t.Id,
                Ruc = t.Ruc,
                Nombre = t.Nombre,
                FechaNac = t.FechaNac,
                Direccion = t.Direccion,
            };
        }

        // PUT api/<controller>/5
        public ClienteModel Put(Guid id, [FromBody]ClienteModel model)
        {
            Cliente t = ClienteBusiness.Update(new Cliente
            {
                Id = id,
                Ruc = model.Ruc,
                Nombre = model.Nombre,
                FechaNac = model.FechaNac,
                Direccion = model.Direccion,
            });
            return new ClienteModel
            {
                Id = t.Id,
                Ruc = t.Ruc,
                Nombre = t.Nombre,
                FechaNac = t.FechaNac,
                Direccion = t.Direccion,
            };
        }

        // DELETE api/<controller>/5
        public void Delete(Guid id)
        {
            ClienteBusiness.Delete(id);
        }
    }
}